home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_11_05
/
test_obj
/
dgen.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-20
|
2KB
|
71 lines
#ifndef DGEN_H
#define DGEN_H
void init_dgen(void);
void dgen(void);
typedef union {
char ag_vt_2[sizeof(int)];
char ag_vt_3[sizeof(char *)];
char ag_vt_4[sizeof(struct STRLIST *)];
} dgen_vs_type;
typedef enum {
dgen_space_token = 1, dgen_blank_token, dgen_eol_token,
dgen_comment_token, dgen_commentCharacter_token = 6,
dgen_variable_token = 9, dgen_varStart_token, dgen_varRest_token,
dgen_alpha_token = 13, dgen_alphanumeric_token, dgen_string_token,
dgen_doubleQuote_token, dgen_stringContents_token,
dgen_stringCharacter_token, dgen_block_token, dgen_blockStart_token,
dgen_blockComponent_token, dgen_blockCharacter_token = 26,
dgen_nestedBlock_token, dgen_nestStart_token, dgen_initializerList_token,
dgen_initializer_token, dgen_initializer_contents_token = 32,
dgen_notCloseBracket_token = 36, dgen_grammar_token, dgen_statement_token,
dgen_eof_token = 40, dgen_embeddedBlock_token, dgen_runStatement_token,
dgen_declaration_token, dgen_runHeader_token, dgen_testSpec_token,
dgen_variableList_token = 48, dgen_charDeclaration_token = 50,
dgen_stringDeclaration_token, dgen_intDeclaration_token,
dgen_doubleDeclaration_token, dgen_FILEDeclaration_token,
dgen_intarr2Declaration_token, dgen_ItemDeclaration_token,
dgen_ClientDeclaration_token, dgen_InvoiceDeclaration_token
} dgen_token_type;
typedef struct {
dgen_token_type token_number, reduction_token, error_frame_token;
int input_code;
int input_value;
int line, column;
int ssx, sn, error_frame_ssx;
int drt, dssx, dsn;
int ss[32];
dgen_vs_type vs[32];
int bts[32], btsx;
unsigned char * pointer;
unsigned char * la_ptr;
int lab[9], rx, fx;
unsigned char *key_sp;
int save_index, key_state;
char *error_message;
char read_flag;
char exit_flag;
} dgen_pcb_type;
#ifndef PRULE_CONTEXT
#define PRULE_CONTEXT(pcb) (&((pcb).cs[(pcb).ssx]))
#define PERROR_CONTEXT(pcb) ((pcb).cs[(pcb).error_frame_ssx])
#define PCONTEXT(pcb) ((pcb).cs[(pcb).ssx])
#endif
#ifndef AG_RUNNING_CODE_CODE
/* PCB.exit_flag values */
#define AG_RUNNING_CODE 0
#define AG_SUCCESS_CODE 1
#define AG_SYNTAX_ERROR_CODE 2
#define AG_REDUCTION_ERROR_CODE 3
#define AG_STACK_ERROR_CODE 4
#define AG_SEMANTIC_ERROR_CODE 5
#endif
extern dgen_pcb_type dgen_pcb;
#endif